home *** CD-ROM | disk | FTP | other *** search
/ Openstep 4.2 (Developer) / Openstep Developer 4.2.iso / NextDeveloper / Source / GNU / uucp / Uucp.framework / unix.subproj / sync.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-09  |  612 b   |  43 lines

  1. /* sync.c
  2.    Sync a file to disk, if FSYNC_ON_CLOSE is set.  */
  3.  
  4. #include "uucp.h"
  5.  
  6. #include "uudefs.h"
  7. #include "sysdep.h"
  8. #include "system.h"
  9.  
  10. #include <errno.h>
  11.  
  12. boolean
  13. fsysdep_sync (e, zmsg)
  14.      openfile_t e;
  15.      const char *zmsg;
  16. {
  17.   int o;
  18.  
  19. #if USE_STDIO
  20.   if (fflush (e) == EOF)
  21.     {
  22.       ulog (LOG_ERROR, "%s: fflush: %s", zmsg, strerror (errno));
  23.       return FALSE;
  24.     }
  25. #endif
  26.  
  27. #if USE_STDIO
  28.   o = fileno (e);
  29. #else
  30.   o = e;
  31. #endif
  32.  
  33. #if FSYNC_ON_CLOSE
  34.   if (fsync (o) < 0)
  35.     {
  36.       ulog (LOG_ERROR, "%s: fsync: %s", zmsg, strerror (errno));
  37.       return FALSE;
  38.     }
  39. #endif
  40.  
  41.   return TRUE;
  42. }
  43.